The present invention is directed to aiding a circuit designer in designing an AMS circuit that fits with his or her set of preferences for circuits.
The optimization of analog circuits can take place at different levels. Cells are transistor-level circuits with between approximately 5 and 50–200 components, such as operational amplifiers. An analog cell is an elementary circuit that performs some useful function. It consists of a set of components connected together in a carefully constructed topology. Each of these components may have designable values such as resistance, capacitance, length, width or area.
There is value in the design of analog circuits with complexity greater than cells, such as active filters and phase-locked-loops. An active filter, for example, consists of several operational amplifiers connected together as sub-circuits. The design space for such complex circuits is ultimately the interconnection, sizing and layout of all the components at the finest level of granularity.
One can attack the design of complex circuitry in one of two ways: flat or hierarchical. In the flat approach, we would attempt to manipulate all the designables at the finest level of granularity, all at once.
The hierarchical approach breaks up the system into smaller, more tractable sub-blocks. Those sub-blocks may get broken up, and so on, until the finest level of granularity is approached. This breaks up the big problem into a series of smaller, more tractable problems. A design methodology is then employed to solve each of the smaller subproblems until the final big problem has been solved. One example of such a methodology is the top-down constraint-driven design methodology, in which each subcircuit at each level of the hierarchy is separately designed. Another example is the concurrent methodology, in which subcircuits at two or more levels are optimized concurrently.
For example, referring to FIG. 1, an example design problem could relate to designing a system 100 that has among its components an active filter 110 and a PLL or phase-locked loop 120. The design of the active filter could itself involve sub-components such as operational amplifiers denoted in FIG. 1 by opamp1 112 and opamp2 114.
Each of these entities, namely system 100, active filter 110, PLL 120, opamp1 112 and opamp2 114 of FIG. 1 is a node in the design hierarchy and is associated with a corresponding design problem.
Referring to FIG. 2, the basic set up of AMS design at one node in a design hierarchy includes setting up the problem definition 200 and biases 210 and then using these conditions to solve the topology design or selection, sizing, placement, routing, extraction and verification problem 220 resulting in sized schematics 230. By topology, we refer to the structure of a circuit in terms of how components are connected to each other.
Automated design can be accomplished via optimization, in which an optimizer traverses a design space getting feedback from measures of goals. In general, the goal of optimization is to speed the design process and/or get higher quality results. There are generally three types of ways that designer preferences can be taken into account in optimization:                before the optimization (a priori);        during the optimization (interactive); and        after the optimization is complete (a posteriori).        
An a priori approach to AMS circuit optimization-based design is illustrated in FIG. 3. An example of an a priori approach to handling preferences is having the designer set weights for each objective or constraint before the optimization begins 310. The optimization is typically performed by an automatic optimization loop 320. Within automatic optimization loop 320, new designs are suggested 330. The designs are initially unevaluated by the optimizer 340 so the next step is to evaluate them 350. The resulting current state of the search 360 includes evaluated designs. If the search results 360 are satisfactory, based on one or more stopping criteria, then a final result 370 is produced, otherwise the loop repeats the step of suggesting or generating additional designs 330 for evaluation.
Typically, the optimization will be biased based on the weights. Once the final result is examined, the designer can change the problem definition and/or biases, and re-start the optimization.
Another example is to specify exact thresholds of feasibility for circuit performances a priori. This is also known as constrained optimization. The design goal would be for the circuit's performances to pass all feasibility thresholds. For example, a simple amp might have two feasibility thresholds: “power consumption <50 mW” and “open loop gain>10 dB.”
Some problems with an priori approaches include:                the designer does not know exactly what he wants before, because he does not know what designs are possible;        it may be difficult to express preferences in a natural manner;        the designer's preferences may change over time once he learns what is possible; and        because the preferences that the optimizer has been told may not align with what the designer actually wants or will want, the optimizer will return unwanted results.        
An a posteriori approach to AMS circuit optimization based design is given in FIG. 4. An example of an a posteriori approach is for the optimizer to present a set of alternative designs 372 once it has completed optimization using automatic optimization loop 320, and for the designer to choose a design 380 as the final result 390.
A problem with such an a posteriori approach is that there may be so many possible objectives and constraints that the optimizer cannot possibly provide a full tradeoff among all of them within a reasonable amount of time. A problem with both the a priori and a posteriori approaches is that they may be unpalatable to designers who like to have more control of the design process, which means that opportunities for faster design via optimization are lost because the tool is not even used. Another problem with both approaches is that understanding of the design problem is somewhat compromised because the designer is no longer intimately involved with design “in-the-loop.”